package cn.wolfcode.web.advice;

import cn.wolfcode.qo.JsonResult;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.ModelAndView;
//处理异常类
//表示针对控制器对处理方法
@ControllerAdvice
public class ExceptionControllerAdvice {
    //处理异常的方法,和之前处理请求的处理烦恼规范很类似
    //四个方法一样的都是处理异常的
    //不同点上  前者(处理异常类) 贴@ExceptionHandler 针对异常
    // 后者贴@RequestMapping 针对 上面资源路径,

    // 处理异常类 没有坚守请求参数的形参,可以用 model,servlet Api
    // 这些类型形参handlerMethod,异常形参
/*
    @ExceptionHandler //配合上面  针对处理方法出异常
    public void e1(){

    }
    @ExceptionHandler //配合上面  针对处理方法出异常
    public ModelAndView e2(){
        return null;
    }*/

    @ExceptionHandler(ArithmeticException.class) //配合上面  针对处理方法出异常
    public String e3(ArithmeticException e, HandlerMethod method, Model model){
        e.printStackTrace();//不异常信息打印 在控制台
        model.addAttribute("errorMsg","java真难啊!!!");
        return "error_test";
    }

    /*@ExceptionHandler //配合上面  针对处理方法出异常
    public JsonResult e4(){
        return null;
    }*/
}
